home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SPACE 1
/
SPACE - Library 1 - Volume 1.iso
/
sound
/
639
/
paula.2_0
/
doc
/
paula_e.doc
< prev
Wrap
Text File
|
1992-10-06
|
36KB
|
929 lines
064020303000000128004006006000000
1PAULA 2.0 Modfile Player0
2Seite #0
F0110000001
R [.◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆...]0110
9[...◆.◆...◆◆..◆.....◆....◆.◆..◆....◆....◆....◆....◆....◆....◆....◆.]0110
Ç
üëPAULA][
ü(Paula,taketwo!)
ë
ÇYetanotherAmiga-MODfile-Player
fortheAtariTT&STE
Version2.0d
21-Aug-92
Sharewareby
PascalFellerich
ëShareware:
Ç
Startingwithversion2.0Paulaisshareware.Thatmeansthat
youmaydistributeandtestthissoftwarefreely.Butifyou
useitregularlyyouhavetoregister.Unregisteredcopiesof
Paulawillremindyousometimestodoso.Moreoverthese
unregisteredcopiescannotauto-startmodules-howeverthisis
theonlyrestrictionofPaula!Asalreadysaid:it'sreal
shareware,ünotÇcrippleware.
♪③AtthebeginningPaulawasalittleutilitytoplaymodfiles
whichIwroteinsomeweeks.Asthereactionsonthislittle
pieceofsoftwarewereverypositive,Idecidedtorewritethe
playercompletelywhichmadeitpossibletointegratemanynew
features.Paulahasbecomearealpowerfulprogramwhichhasno
equivalentuntilnow.SoIdecidedtoreleaseitasshareware.
You'llfinddetailsintheparagraphentitled'Registration
Procedure'onpage11.
♪②Thefollowingfilesarepartofthe'PAULA'-packageandmust
remainunchangedandbedistributedtogether:
ê1.ÇêPAULA.APPÇ-Themainprogram(alternativenamesare
PAULA.ACCorPAULA.PRG)
ê2.ÇêPAULA_D.TXTÇ -thegermanmanual
ê3.ÇêPAULA_E.TXTÇ -theenglishmanual
ê4.Ç êMP.TTPÇ -ModPlay:alittleutilitytoplaymodules
evenfromCLI's
ê5.Ç êMP.CÇ -thesourcecodeofModPlay.
ê6.Ç êCHECKMOD.TTPÇ -ChecksifamoduleisOKandrepairs
corruptedmodfilesasfarasthisis
possible.
♪②Thefile'PAULA.INF'êmustnotbegivenawayÇasthisfile
containsyourregistrationdata.
♪②PaulamaybedistributedviaBBSandon'PublicDomain'disks;
howeverthesharewarestatusofthissoftwareisnotaffected!
♪①AllrightsreservedbyP.Fellerich.
♪⑧ Myaddress: PascalFellerich
45,ruedesGenets
L-3482Dudelange
(Luxembourg)
Postalchequeaccount: CCP65407-29
E-Mail: 2:270/16.3@fidonet
♪③ThelatestreleasesofPaulaareavailableinthefollowingBBS
(inLuxembourg,don'tforgettherightdialingprefix)underthe
nameof'PAULA2*.LZH':
♪√Ç NoNameBox 595243,300-14400BpsHST,V.32b
(Fidonet2:270/16)
ComNet (line1) 466893,
(line2) 467516,
(line3) 222534, 300-14400BpsHST,V.32b
♪⑥ëWhyPaula?
Ç
Paulaplaystheso-called'modfiles'usingtheSTE/TTPCMsound
chip.Thesemodfiles,alsocalled'modules',originatefromthe
Amigawhichhasaspecialfour-channelPCMsoundchipcalled
'Paula'.
♪④Pauladoesn'tclaimtobetheonlyorthefastestmodplayer
availablefortheAtari,butithasauniquecombinationofa
perfectGEMuserinterfaceandacollectionofsuperfluous
features...
♪④ëWhatdoesPaula?
Ç
Toavoidaratherlengthydescription,hereisashortlist
withPaula'sfeatures:
♪ê1.Internal:
Ç
*CompatibletoallMOD-formats,rangingfromtheold
SoundtrackerformattothenewProtrackerformat
*Threesamplingfrequenciesareavailable:12.5,25,50KHz
*Interpolationoptionbringingagreatimprovementinsound
quality.
*Boosteroption,risingtheS/Nratioby6dB.
*PitchandSpeedtuning
♪⑨ê2.GEM&Co-theuserinterface:
Ç
*RealGEM-consequentlyitwillrunonanyTOS-machine.This
alsoincludesAtari'snewMultiTOS.
*Simpleandintuitivecontrol
*SupportsextendedselectionfeaturesofSelectric™andGemini
*'Programmable'likeasimpleCDplayer
Ç*Random:randomplayofseveralmodules.
♪②*Repeat-switch:onemoduleorawholeselectionmayberepeated
indefinitely
*CPULoadandpositiondisplay
♪⑤ëHowitbegan...
Ç
WhenIgotmyTTIwantedtohearthenewsoundchip.SoI
downloadedsomemodplayersfortheSTEandtriedthem.
Unfortunatelymostofthemcrashed,andthosewhichranonthe
68030produced'lo-fi'(lowfidelity)sound.SoIhadtowritea
playeronmyown.Butthatwaseasiersaidthandone-Ihadto
acquiretheknowledgeofthe'real'PAULA-chipintheAmigaand
ofcourseoftheSTE/TTsoundhardwaresimplybecauseIwanted
toportanoldreplayroutinefromtheAmiga(D.O.C.
replayroutine2.0fromjune1986).SomeweekslaterPaula1.0
was'upandrunning'.Thisreleasewasstillbuggyandhad
limitedcapacitiesbutitfinallyworkedfineontheTT.After
severaloptimizationsandimprovementsIconcludedthe
developmentatv1.5.
♪③Inapril92adiscussioninthefidonetBBSre-ignitedthe
globalinterestinthemoduleplayer,andIdecidedtocontinue
thedevelopment.Theversions1.7and1.8werereleased.Inthe
meantime,thesoundqualitywasgreatlyenhancedbutstillthe
userinterfacewaslousy.SoIrewrotethewholething-that's
it...
ë
♪④Systemrequirements:
Ç
PaularunsonallTOS-basedmachinehavingaSTEcompatiblePCM
soundchip.
♪③However,onlythefastermachinesallowdecentbackgrouduseof
Paula;anormalSTErunningat8MHzwon'tdo25KHzsampling
frequency.AMegaSTEat16MHzisfine,aTTisbetter.
ë
♪④Installation:
Ç
Paulamayrunasanaccessoryorasanapplication.Withnormal
TOSversionstheaccessorymodeisuseful,underMultiTOSyou
mayfinditbettertouseitasaprogram.Ofcourseyoumayuse
'theChameleon'(oranyothergoodaccessoryloader)toloadthe
ACC.
♪²ÇWhenusingMultiTOSyoumayrunPaulaasanormalprogram;but
thenyoumaynotcloseit'smainwindowwithoutleavingthe
program!
ë
♪③ÇAnotherusefulthingisXCONTROL-youshouldhaveinstalledthe
'SOUND'cpx-modulesothatyoucanchangethevolume,treble,
bassandbalance.Moreoveryoushouldconnectyourcomputerto
yourstereoequipment(viatheRCAjacks)togetthebest
possiblesound.
ë
♪④User'sGuide:
Ç
AfteryouhavelaunchedPaulayougetawindowcontainingthe
maindialog.Thisoneissubdividedinto6areas:
1.theinfoline
2.thePlayer&SoundSetup
3.SampleFreq
4.CPULoad
5.Position
6.theplayer'scontrolkeys
♪⑤ëThecontrolkeys
Ç
Thesecontrolsarehopefullythesimplest.Theycarrythe
commonlyusedsymbolsyoualsofindonacassettetape
recorder,soyoushouldbefamiliarwiththose.Notethatevery
keyismarkedwithalittleletterintheupperleftcorner-
that'sthekeyboardshortcut.Press'L'toëLÇoadafile.
♪③êLOAD:ÇFirstyoumustloadamodule.WhenyouclickontheLOAD-
buttonyougetthefileselectorinordertoselectamodule.On
'OK'Paulaimmediatelyloadsthemodule.Ifthisoperationwas
successfultheinfolineofthewindowwillshowthetext
'Stopped:<modfilename>'.Ifanerroroccurredyouwillbe
informedbyastandardalertbox.
Ifyouhaveinstalled'Selectric™'asafileselector,youmay
alsospecifymorethanonemodule!
NOTE:Paulaonlyloadsuncompressedmodules.
ê
♪③ÇêSTOP:ÇWell,thisonestopsamoduleandresetstheplayer.This
alsoclearsPaula'smemory-ifyouhadselectedseveralmodules
Paulawillforgetthem.Theinfobarshows'Stopped:...'.
Inaccessorymode,closingthewindowinthestoppedstatealso
releasesthememoryallocatedforthelastloadedmodule.
♪③êPLAY:ÇStartstheplayer.Ifyouhaven'tselectedamodulePaula
willpromptyoutodoso.Ifyoupress'PLAY'whenPaulaisbusy
playingoneofseveralmodulesitwillskiptothenextmodule.
(Skipfunction).
♪²ÇêPAUSE:ÇStopstheplayertemporarily.Theplayerisnotreset!In
thatstateyoumayalsoquittheaccessory(closethewindow)
withoutlosingthecurrentmodule.Tocontinue,pressPAUSEor
PLAY.
♪③êREW:Ç(REWIND)Jumpstothepreviouspositioninthemodule.
ThisfunctionworksonlyifPaulaisinthe'playing'or
'paused'state.
♪②êFF:Ç(FASTFORWARD)Jumpstothenextpositioninthemodule.
Thisfunctiontooonlyworksinplay-orpause-mode.
♪②ê!:Ç(Exclamationsign)InvokestheSETUP-dialogwhichoffers
somemorefunctionslikepitchandspeedtuning.
♪④ê?:Ç(Questionmark)SomegeneralinformationsaboutPaula.
Throughthisdialogyoualsogettheregistrationdialog.Howto
registerisdescribedsomepageslater(title:Registration
procedure)
♪③Trytofamiliarizeyourselfwiththesecommandsbysimplytrying
themout!Whateveryoudo,youwillnotsuccedincrashing
Paula.
ë
♪⑤Theinfoline
Ç
Paulausestheinfolineofthewindowtodisplayit'scurrent
statusaswellasthetitleofthecurrentyloadedmodule.
Currentlyfourstatesaredefined:
♪④êInactive:ÇPauladoesnothing.Nofileisloadedandnomemory
isallocated.WhenyouchangeresolutionsPaulashould
preferablybeinthismodetoavoidmemorylossorsystem
crashes.
♪③êStopped:ÇPaulahasloadedamodule.Ifyouchangeresolution
nowyouwilllosetheallocatedmemorybecauseyoudidn'tgive
Paulaachancetoreleaseit.
♪②êPaused:ÇPaulaiswaitingtocontinue.TheFFandREWbuttons
work.
♪④êPlaying:ÇPaulaisbusy-don'tyouhearthat?Ifanotherprogram
accessesthesoundhardwarePaulaisstopped,ofcourse.Butas
soonasthesoundchipgetsfreedPaulatriestocontinue,which
maytakeupto1second.Ifnot,thisisabugandshouldbe
reported.Howeveryoumaymanuallyrelaunchtheplayerby
pressingthePAUSE-buttontwice.
ë
♪ⁿëSampleFreq
Ç
YoumaychoosethesamplingfrequencyusedbyPaula.Currently
therearethreepossibilities:12.5,25and50KHz.Thehigher
thesamplingfrequencythebetterthehighfrequencyresponse.
Theoreticallythehighestsoundfrequencyishalfthevalueof
thesamplingfrequency(cfShannon'ssamplingtheorem).Onthe
Atarihardwareit'sabout40%ofthesamplingfrequency.When
using25KHzsamplefreqyougetupto10KHzsoundfrequency.
Changesinthesamplingfrequencyareimmediatelyeffective.
Duringtheswitchingthesoundismutedforaveryshortmoment
toavoidstrangenoises.
ë
♪⑤Player&SoundSetup
Ç
Inthatareayoufindtwotypesofswitches:
*switchestoinfluencethesoundsynthesizer
*switchestochangethereplaymodi
♪③êInterpolate:ÇEnablestherealtimeinterpolationofthesamples.
Thisgivesamuchbettersoundqualitybutitrequiresmuchcpu
power.OnaTTthisisamustbecausethe68030does
multiplicationandshiftsmuchfasterthanthe68000cpu.Bythe
way,thisalsoappliestothe68020-soifyouhavea020-board
installedinyourSTE...
♪④êBooster:ÇIncreasestheoutputsignalby6dBusingalittle
trick.Thisimprovesthesignaltonoiseratiobutitalso
introducesacertainamountofdistorsions,especiallywhen
playinghigh-levelsignals.
♪③êProtracker:ÇEnablestheprotrackercompatibility.Ingeneral,
soundmodulesareupwardscompatiblesothatanewplayershould
playcorrectlyanoldmodule,butunfortunatelytheprotracker
intoducedsomefeatureswhicharemorecritical.Soyouhave
thepossibilitytoswitchoffsomeofthenewprotracker
commands.
♪③êRepeat:ÇThisswitchhastwomeanings,dependingonhowmany
modulesyouhaveselected.Ifyouhaveselectedasinglemodule,
thismoduleisrepeated,elsethewholebunchofmodulesis
repeated.
Bytheway,therearesomemoduleswhichuse'jump'commandsto
buildanendlessloop.Paularecognizestheseandinterrupts
them.
♪③êRandom:ÇThisistherandomplayfunction.Ifyouhaveselected
severalmodules,theywillbeplayedinrandomorder-but
everymoduleonlyonetime!Aftereverymodulehasbeenplayed,
Paulastopsorrestartsthewholeprocess,dependingonthe
'Repeat'switch.
ë
ë
♪④CPU-LoaddisplayÇ
ThisbargraphshowstheamountofcputimePaulaneedsforthe
soundsynthesis.Itisarelativedisplay,100%arealwaysthe
totalcputime,nomatterwhatprocessoryouhave.NoLandmark
orNorton-that'ssimplynotinformativeenough.
Attherightedgeofthecpuloadbargraphthereisalittlered
boxwhichflasheseverytimeyourmachinewasnotfastenough.
♪⑤ëPosition
Ç
Thisdisplayshowsthecurrentpositioninthemodule.It's
usingthehexadecimalformat-youknow,programmersdoitin
hex!
♪④ëGeneralinstructions:
Ç
Themaincommandsaremainlyintuitiveandshouldbeeasyto
use.Buttherearealsosomespecialfunctionswhicharenotso
evident.Theseare:
*leavingthemaindialog
*selectingmultiplemodules('multiplaymode')
*keycommandlogic
*hiddenfeatures
♪③WhenyouclosethemainwindowandPaulaisanaccessory,the
playerwillcontinue.Moreoveryoumayclosethiswindowby
simplypressingthe<Return>key-analogoustoXCONTROL.ACC.
ButifPaularunsasaprogram,closingthemainwindowwill
terminatetheprogramandtheplayerwillofcoursebestopped.
soinPRGmodeyoucan'tquitbypressing<Return>-youmust
clickonthecloser-gadgetofthewindow.
♪③êSelectingmultiplemodules...Ç
Thesimplestwaytoselectmorethanonemoduleistouse
wildcards.Insteadofselectingafileinthefileselector
simplychoosetherightpaththentypethefilespecification,
e.g.'A*.MOD'.Thiswouldplayanymodulewhosenamestarts
with'A'.Ifyousimplywanttohaveallmodulesplayedwhich
arelocatedinonedirectory,simplyselectthatdirectorybut
don'tenteraname.Paulawillthenautomaticallyselectany
filewhichmatches'*.MOD'.
♪③ê...automatically:Ç
Createadirectoryonyourbootdevicewiththename'AUTOMOD'
andcopyyourfavoritemodulesintoit.AssoonasPaulais
starteditwillplaythesemodules.
♪³ÇThisfunctionistheonlyonethatdoesn'tworkinunregistered
copies.
♪③ê...usingSelectric:
ÇIfyouuse'Selectric™'asafileselectoryoumayselect
multiplefiles(shift-key+mouseclick),Paulawillloadthem.
You'llfinddetailsintheSelectric-manual.
Selectric™isasharewareutilitybyStefanRadermacherand
OliverScheel.
♪③ê...usingGemini:
ÇDragtheiconofPAULA.ACContothedesktopandinstallitas
anapplicationfor.MOD-typefiles.NowyoumaycallPaulaby
double-clickingit'sicon,playamodulebydouble-clickingit,
orevenlistentoseveralmodulesbydraggingthemontothe
PAULA-icon.
GeminiisasharewareprogrambyGereonSteffensandStefan
Eissing.
♪③Somewordsabouttheêkeycommandlogic:ÇPaulaalwaystriesto
stayinthecurrentmode.Ifamoduleisrunningandyouload
anotherone,thenewlyloadedmoduleisimmediatelyplayed.
♪③IfPaulawasstoppedwhenyouselectmultiplemodules,itwill
gointothe'pause'-mode.Thishastobedonethatwaybecause
Paulawillforgeteverythingassoonasitentersthe'Stopped'-
mode.Isuggestthatyoutrythesecommandstofamiliarize
yourselfwithit.
♪⑤ëSetup-Page-dialog
Ç
Thisdialogboxiscalledwiththe'!'-command.Itofferssome
nicefeaturestomanipulatethesoundaswellasthe'save'-
function.
♪③êPitchBend(cent):ÇThisisafinetuningfunction.100centis
onehalftone,andyoumay(fine-)detunePaulabyonehalftone.
Thestandardtuningcorrespondstoa'NTSC'-Amigawith7.15909
MHzclockfrequency.Togetthe'PAL'-Amigatuning,setthe
pitchbenderto-10..-15cent.Thestepsare5cent,afiner
stepisnotneededasthehumanearhasalreadyproblemsto
detectadetuningby5cent.
♪③êTranspose:ÇThisisthecoarsetuningfunction.Itchangesthe
tuninginhalftonesteps,maximumis12halftoneswhich
correspondstooneoctave.
♪③êFrameSpeed:ÇThisisthe'ticker'speedusedasaspeed
referenceinthemodule.OntheAmigathisisthe50HzVBlank
interrupt,sothestandardsettingis50Hz.Paulaallowsany
valuefromhalftodoublespeed(25..100Hz).
♪²ÇêSave:ÇSavesthecurrentsetupintothe'PAULA.INF'fileandthen
leavesthedialog.Notethatallsettingsaresaved,themain
dialogsettingsaswellasyourregistrationdata.
♪②êExit:ÇLeavesthedialogwithoutchanginganything.Howeverthe
changesyouhavemadewillnotbeundone.
♪②êReset:ÇResetsthethreesettings(Pitchfine/coarse,Speed)and
leavesthedialog.
♪④ëInfoPagedialog:
Ç
Theunavoidableinfobox...andalsoanicewaytoremindyou
sometimesofthefactthatyouarestillusinganunregistered
copy!
Ç
♪⑤ëRegistrationprocedure
Ç
Theinfopagehasabigbuttoninthelowerleftcornerin
whichthetext'-unregistered-'iswritten.Ifyouclickonit
yougetanotherdialogbox-theregistrationform.That's
whereyoumustenteryournameandyouraddressaswellasyour
personalkey.IftheseentriesarecorrectPaulaisregistered
andtherearenomorerestrictions.Nowifyougetan
(unregistered)updateofPaulayouonlyhavetorepeatthis
proceduretogetanewregisteredcopy.Thisappliestoall
future2.xreleasesofPaula!
Togetyourpersonalkey,pleasesendme:
♪④*Yournameandaddress-readable,please!
Name:<firstname><lastname> (30charsmaximum)
Addr: <street> (""")
City:<zipcode><city> (""")
♪② *Yoursharewarefee-600FBor30DMorequivalent-withthe
remarkthatit'sforPaula.Somepossibilitiesare:
♪②êcashÇ-alwaysOK.Tomakesurethatthemoneyreachesits
correctdestinationyoumaysenditasaregisteredletter.
payintomyêpostalchequeaccountÇ-agoodway!
normalêchequesÇ-theworstalternativebecausethebankalways
takesaparttocovermiscellaneousfees...(around200FB/
10DM)
♪③AssoonasIgetthemoneyyouwillreceiveyourkeybyletter
orE-mail.YoumaythenenteryourdataintoPaula's
registrationformandverifyiftheregistrationwassuccesful.
Ifsothelargebuttonintheinfodialogentitled'Registered
to:'willshowyourname.Inthatcasedon'tforgettosavethe
currentsetupsothatPaulawillrememberit'sregisteredstate
nexttimeyouboot.
Ifitdidn'twork,pleaseverifythespelling-Paulawon't
accepterroneousdata.
♪②üImportantnote:ÇNEVERgiveawayyourPAULA.INF-fileasyour
registrationdataissavedinthatfile!
♪③Ifyouchangeyouraddressand/ornameyouwillneedanewkey.
Inthatcasesendmeyournewdata(apostalcardwilldothe
job)andyougetanewkeyassoonaspossible.
♪②IfyouhavemorequestionsorproblemswithPauladon'thesitate
towriteme!
ë
♪ⁿëErrormessages:
Ç
Paulanormallyreportserrorsusingstandardalertboxes.To
avoidproblemswithunwantedalertboxespoppingupPaulawon't
complainaboutit'sproblemsifit'smainwindowisclosed.
♪④Let'sassumeyouselectedthemodules,A.MOD,B.MODandC.MOD;
randommodeisoff.PaulastartsplayingA.MOD,theyouclose
thewindow.AfterfinishingwithA.MOD,Paulatriestoload
B.MOD.IfthisdoesnotsucceedPaulawillstopanyfurther
activitiesandwillgointothe'Inactive'state.Ifyouinvoke
Paulaandselect'LOAD',youwillseethenameanpathofthe
modulewhichcausedtheerror.
♪④Ifyougetthemessage'CorruptedMODfile'thismeansthatthe
selectedmodulecannotbeplayed.Inthatcasetrytheutility
'CHECKMOD.TTP'whichanalyzesamoduleandalsorepairsit-if
possible.
♪⑥ëMoreinfos...
Ç
Amodulecontainsupto31differentsampleswhicharealso
called'instruments'.Toplayagivensampleatdifferent
pitchestheAmigasimplyvariesthereplaysamplingfrequency.
Thehigherthesamplingfrequencythehigherthenote.Asthe
Amigahasfourindependentsoundchannels,eachonehavingit's
ownD/Aconverteritcanplayfourdifferentsamples
simultaneouslywithoutthehelpoftheCPU.TheAtarihasonly
twochannels(stereoL+R)whicharenotindependentandonly
fourfixedsamplingrates.Soanothertrickmustbeusedto
simulatetheAmigaChip-the'directdigitalsynthesis'.It's
notdifficulttounderstand:thesampledataisnotreplayedat
a1:1ratebutwithan1:RratewhereRisafloatingpoint
number.IfyouwanttoplayasampleathalfspeedRis2-
everybyteofthesampleisoutputtwice.Ifyouwantittobe
at75%ofit'soriginalspeed,Ris1.5-thistimeonebyteis
outputtwice,thesecondisoutputonceandsoon.Unfortunately
thesamplingdataisoutputirregularly-whichgivesa
distortedsound.Therearetwowaysofeliminatingthese
distorsions.Eithermakethestep'R'ratherbig(thiswould
requireverylargesamplesoriginallysampledataveryhigh
rate)orêinterpolateÇtheoutputdata.Thebestthingwouldbea
splineinterpolationbutunfortunatelythisrequiresmatrix
operations,soPaulausesasimplelinearinterpolation.Don't
confuseitwiththe'oversampling'ofsomeothermoduleplayers
-theyonlydoubletheoutputdataandsetthesoundhardware
tothedoublesamplingfrequency.
♪③Theresultingsoundisofaveryhighquality-at50KHz
samplingrateevenbetterthantheAmiga!Thisisduetothe
factthattheTT/STEhasno7KHzlowpassfilterwhichcutsoff
thehighfrequencies.IftheAmigaswitchesofthisfilterit
alsoproducesmoretreblesbutalsomorealiasingcomponents.If
youdoubtaboutthattakeanAmiga,listentoitandreadabout
ÇthefactsintheHardwareReferenceManual[2].
♪③HowevertheAmigahasalargerêdynamicÇrangeduetoit'sfour
volumeregisterswhichintroduceanother36dBdynamic-but
thatisnotthesamethingasthesignal-to-noiseratiowhichis
always48dBfor8bitsystems.TheD/Aconvertersusedinthe
Amigaaresometimescalled'floatingpointconverters'.In
ordertocopewiththisPaulahasthe'Boost'option.This
optionsimplysimulatesa9bitD/Aconverterbyusinga
nonlinearconversionscheme.TheresultisOKforlowvolume
MODsbutitintroducesadditionaldistorsionathighoutput
levels.
♪④Ifyoudon'tmindabouthowtheinterpolationroutineworks,
skipthefollowingparagraph.Ifnot-Ihopeyouknowhowto
readaCroutine.
♪⑤/*Fix-Pointnumberrepresentingthestep'R'*/
typedefstructfxp{
intip;/*integerpart(1/1)*/
intfp;/*fractionalpart(1/65536)*/
}fixpoint;
♪⑧ /*Fetchabytefromthesampledataandcalculatethecorrect
*'inbetween'value.
*Param:spl:Pointertothesample(char*)
*index:thearrayindexasFixpoint-number
*volume:Amiga-volumeregistervalue,0..64
*Return:theresultingsamplevalueas16bitinteger
*range:14bit(8bitsample+6bitvolumeinfo)
*/
♪⑨intget_samplevalue(char*spl,fixpointindex,intvolume)
{
ints1,s2;/*SamplevaluessánÇundsán+1Ç*/
s1=volume*spl[index.ip];
s2=volume*spl[index.ip+1];
return(((s2-s1)*index.fp)/65536+s1);
}
♪③Besidesthisroutinetheindexhastobeincremented(addition
oftwofixpointnumbers),thereturnvaluemustbescaledand
saved,andthesamplemustbecheckedifithasreachedtheend.
Astherearefourchannelswhichmustbecalculatedtheabove
routineiscalled200,000timespersecond.Tomakethisrunin
realtimealotofoptimizationsmustbedone.Eventhe68030
wouldbetotallyoverworkediftheseroutineswerereally
writteninC(thatmeans:IambetterthanmyCcompiler...).
ëAreallynicechapter:BUGS&LIMITATIONS!
Ç
♪③êCollisions:
ÇNormallyPaulashouldnotinterferewithanyotherprogram-but
problemswithotherutilitiesaccessingthesoundhardwareare
unavoidable.Aslongasthe'opponent'iswellprogrammed
nothingwillhappen-exceptthatPaulaisstopped.Asimple
test:runtwoPaulas...
♪③êOverload:Ç
Whenyourcomputeristotallyoverloadedtheinternaltimingis
somewhatconfused.AsaconsequencethemomentwhenPaulawrites
intothesoundregistersisundetermined.Soitmayhappenthat
thesoundchipstartsplayingthewrongdata-howeverthe
registerscontaintherightvalues!Inthatcase,choosealower
samplingfrequencyorswitchoftheinterpolation.Orhaveyou
forgottentoturnonthe68030cache??
♪④êResolutionchange:
ÇBeforeyouchangeresolutionsmakesurethatPaulaisinactive.
CallPaula,press'STOP'andleavePaulaagain.Ifyouare
runningMultiTOSPaulawillputitselfintotheinactivestate
becauseGEMAES4.0sendsadedicatedmessagetoevery
applicationandaccessory.
♪④êProtracker'CIA'-replay-speed:
ÇTheAmigaProtrackernolongerusestheVBlankforit's
internaltimingbutatimer(theCIAtimer).Soitispossible
tosetthetimingveryprecisely.ForthemomentPaula
simulatesthis'finetuning'ofthereplayspeedwiththe
standardreplaytiming.Someveryslowmodulesareplayed
slightlyirregularly.Thiswillbechangedsoon.
♪④êSystemcrashonSTE's:
ÇIknowoftwo1040STEcomputersonwhichPauladoesn'trun.The
symptoms:thecomputerfreezes,theonlyescapebeingthereset
button.Thisislikelytobeahardwareproblemasthereis
absolutelynolinkbetweenthecrashesandthemodulesplayed.
IfyouhavesuchanSTE-sorry,noremedy!
ë
♪④Internals
Ç
êGEM-UserInterface
ÇPaularespondstothe'VA_START'-message(introducedbyGemini).
Thismessagecontainsapointer(inmsg[3]andmsg[4])whichis
evaluatedbyPaula:
♪②*NULLpointerorpointertoanemptystring:Paulareactsin
thesamewayasifitwasanAC_OPENmessage.
♪②*Pointertoastringcontainingonename:Paulatriestoload
thismoduleandstartsplayingit.
♪³Ç*Pointertoastringwithseveralspaceseparated
modulenames:PaulaenterstheMultiplaymodeandplaysthem
all.
♪③ThestringiscopiedinternallybyPaula,soitmaybelocalon
thewriter'sside.Howeverthememorymustbereadable-beware
oftheMultiTOSmemoryprotection!!!
♪③Thestringalsomustcontaincompletepathandnameindications,
NOWILDCARDS.ThesourcecodeofMP(ModPlay)mayserveyouas
anexample.
♪③ êMemoryusage
ÇPaulaneedssome45KBforit'sprogramcodeanddata.On
machineswitha68000processoranother15KBareusedforthe
volumetables.
♪③êEmergencystop
ÇWanttokillPaula?Well,don'tforgettosendanAP_TERM
message(GEMmsg#50)toitbeforedoingso.
♪④êSpeeeeed!
ÇTosaveCPUtimeonyourTTPaulashouldbeloadedintoFastRAM
andtheprocessorcacheshouldbeenabled.WithoutcachePaula
willprobablyhaveproblemsdoing50KHzwithinterpolation...
♪④ êHardware
ÇTimerAandtheYamahasoundchiparenottouched.Thekeyclick
andthewonderful'bell'soundwon'tbeaffected.Moreoveryou
mayalsouseSTSPEECHoranyotherutilitytoproducedigital
soundeffectsontheYamahachip.
♪③êDevelopment
ÇPaula2.0wasdevelopedusingthePureCcompilerandthePure
Assembler.The'realMODplayer',thereplayroutineisbasedon
the'Protracker1.1BPlayer'oftheAmigaFreelancers.
♪⑧êThanxforthehelp...
ÇIwanttothankthefollowingpeoplefortheirhelp:
JoelFrançoisAmigahardwaredocumentation,D.O.C.
ReplayRoutine
FridolinKochProtrackerreplayroutine,goodMODs
Betatesters:
GeorgesKesseler Optimizationideas,'Repeat-Finder'
ChristianLimpach",STE-DMA-Emulator!!!!
Ç
♪⑤ëMP-ModPlayInterface
Ç
MP.TTPisasimpleutilitywhichgivesyouthepossibilityto
launchmodulesfromacommandshell.MPsimplysendsaVA_START
messagetoPaula.Mpdoesn'tevaluatewildcardsbutitis
awareoftheARGVmethodtodealwithlargecommandlines(link
itwith'PCVSTART.O'whencompilingitwithPureC).Thisis
idealforusewithMintShelorMupfel.
♪③AlsotrytoinstallMPasaapplicationfor'*.MOD'-filesin
thestandardDeskTop-youmaythenlistentomodulesbydouble
clickingthem.
♪②MPisnotanexampleforagoodCprogrammingstyle-itisvery
simpleandstraightforward.MP.TTPandMP.Carepublicdomain.
Ç
♪⑤ëCHECKMOD-themodule-doctor
Ç
EventuallyPaulawillrefuseamodulewiththecomment
'CorruptedMODfile'.InthatcaseuseCHECKMODtocheckand
mayberepairthemoduleinquestion.SimplystartCHECKMODand
typeinthenameofthemoduletotest.UnderTOS2.06/3.06drag
themodule'siconontotheCHECKMODicon.
♪③Checkmodwillthenreadthemoduleandcontrolit'sinternal
structures.Itdisplaysalistwiththeusedintstrumentsand
reportstheerror.Thesemaybe:
♪②êCorruptedPatternList:ÇSorry,butthismodulecannotbe
repaired.
♪③êShortSample:ÇAsampleistooshort.Ifthisaffectsonlythe
lastsampleandifthedifferenceisn'ttoobigCheckmodwill
probablybesuccessful.Paulatolerates4lackingbytes.
♪③êSuperfluousDatainMODfile:ÇNoproblem-thismodulssimply
hassomegarbageappended.Checkmodcutsitoff,becausePaula
toleratesonlyupto256bytesofgarbage.
♪④AfterrunningCheckmodyougetthetext'êSaveModuleas:Ç'.Press
<Return>toleave,orenterasingledot'.'tosavethemodule
underit'scurrentname.Orenteranewpathandnametosave
themoduleusinganothername.
Ç
♪⑥ëSupportedmodulecommands
Ç
$0Arpeggio
$1Portamento_up
$2Portamento_down
$3Noteslide
$4Vibrato
$5PortamentoDown+Volumeslide
$6Vibrato+Volumeslide
$7Tremolo
$8(PhasorEffect-ignored)
$9PlayEndpartofSample
$AVolumeslide
$BPosition
$CSet_volume
$DPatternbreak
♪④$EExtendedCommands:
E0xFilterOn/Off(ignored)
E1xFinePortamentoUp
E2xFinePortamentoDown
E3xSetGlissandoControl
E4xSetVibratoWaveform
E5xSetFineTune
E6xLoop
E7xSetTremoloWaveform
E8xStop-ignored!!
E9xRetriggerSample
EAxFineslideVolumeup
EBxFineslideVolumedown
ECxNoteCut
EDxNoteDelay
EExPatternDelay
EFxnoop
$FSet_speed
ëBibliography
Ç
ü[1]Ç Jankowski/Rabich/Reschke
Atari Profibuch ST/STE/TT
Sybex Verlag, ISBN 3-88745-888-5
ü[2]Ç Amiga Hardware Reference Manual
Addison-Wesley, ISBN 0-201-18157-6
ü[3]Ç Thomsen
Digitale Audiotechnik
Franzis' Verlag, ISBN 3-7723-7151-5
ü[4]Ç DDS - Direkte Digitale Synthese
Elektor Nº257, Mai 1992, s.52ff
ü[5]Ç Ulrich Michels
dtv Atlas zur Musik, Band 1 (Akustik, Wellenlehre, Tonparameter)
Deutscher Taschenbuch Verlag, ISBN 3-423-03022-4
9[....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆....◆.]0010
ëRegistrationform
Ç
IusePAULA,version2.__andIwanttoregister.
Firstandlastname(upto30characters):
______________________________
Youraddress:
______________________________
______________________________
Someroomforcomments,ideasandbugreports(pleasetellmeabout
yourhardwarewhenyouhaveproblemswiththeMODplayer,this
helpsalot):